<?php
/**
 * RPC服务 - 控制器基类
*/

namespace houze\controller;

class RPC {
    /**
     * 请求头
    */
    public $headers = [];
    /**
     * 请求参数
    */
    public $param = [];
    /**
     * 当次请求处理说明
    */
    public $msg = 'SUCCESS';
    /**
     * 当次请求处理业务是否异常
    */
    public $rpc_error = false;
    /**
     * 当次请求处理业务异常的说明
    */
    public $rpc_msg = '';

    /**
     * 输出返回内容给客户端
    */
    public final function fetch($data, $msg=null) {
        if ($msg !== null) $this->msg = $msg;
        return $this;
    }

    /**
     * 获取请求头
    */
    public final function headers() {
        return $this->headers;
    }

    /**
     * 获取请求参数
    */
    public final function param() {
        return $this->param;
    }

    /**
     * 设置当次请求处理说明
    */
    public final function msg($msg) {
        $this->msg = $msg;
        return true;
    }

    /**
     * 标记当次请求业务处理异常
    */
    public final function error($msg=null) {
        $this->rpc_error = true;
        if ($msg !== null) {
            $this->rpc_msg = $msg;
        }
        return true;
    }
}